Enhanced SMF record filtering

IFASMFDP or IFASMFDL 
IBM System Management Facility (SMF) is a component of IBM's z/OS for mainframe computers, providing a standardised method for writing out records of activity to a file (or data set to use a z/OS term). SMF provides full "instrumentation" of all baseline activities running on that IBM mainframe operating system, including I/O, network activity, software usage, error conditions, processor utilization, etc.
One of the most prominent components of z/OS that uses SMF is the IBM 
Resource Measurement Facility (RMF). RMF provides performance and usage instrumentation of resources such as processor, memory, disk, cache, workload, virtual storage, XCF and Coupling Facility
SMF forms the basis for many monitoring and automation utilities. Each SMF record has a numbered type (e.g. "SMF 120" or "SMF 89"), and installations have great control over how much or how little SMF data to collect. Records written by software other than IBM products generally have a record type of 128 or higher. Some record types have subtypes - for example Type 70 Subtype 1 records are written by RMF to record CPU activity.

SMF can record data in two ways:
  • The standard and classical way: Using buffers the SMF address space, together with a set of preallocated datasets (VSAM datasets) to use when a buffer fills up. The standard name for the datasets is SYS1.MANx, where x is a numerical suffix (starting from 0).
  • The relatively new way: Using log streams. SMF utilizes System Logger to record collected data, which improves the writing rate and avoids buffer shortages. It has more flexibility, allowing the z/OS system to straightforwardly record to multiple log streams, and (using keywords on the dump program) allowing z/OS to read a set of SMF data once and write it many times.
Both the two ways can be declared for the use, but only one is used at a time in order to have the other as a fallback alternative.
This data is then periodically dumped to sequential files (for example, tape drives) using the IFASMFDP SMF Dump Utility (or IFASMFDL when using log streams). IFASMFDP can also be used to split existing SMF sequential files and copy them to other files. The two dump programs produce the same output, so it does not involve changes in the SMF records elaboration chain, other than changing the JCL with the call of the new dump utility.


Enhanced filtering of records 
One of the greatest obstacles of the „SMF dump programs“ is that no decent filtering has ever been introduced in over 30 years.  In RA2002 we included with V3.7.0 (once GA) such a facility that a user can select SMF records by using a „similar„ language as found in the DFSORT manual.  A user has simply to add 2 IBM defined exit names called USER2(SMF$XT20) and USER3(SMF$XT21).  Note: The complete I/O is fully handled by the IBM program IFASMFDP/DL and not by the supplied exits.  This tool supports the use of symbolic names as well plus relocatable sections can be processed too!


Filtering of records using e.g. DFSORT, SYNCSORT or CA-SORT instead
Some SMF record types are not so simple to filter because you need to use the triplet for the offset to the section that has the data.  When it comes to VSAM files like SYS1.MANx as input a user will run out of luck.  Otherwise the e.g. DFSORT is a viable option to filter/copy such data.  BUT - it cannot handle relocatable sections  -  too bad.  YES WE CAN - with RA2002.
//SORT  EXEC PGM=SORT
//SYSPRINT DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//SORTIN   DD  DISP=SHR,DSN=inputsmf
//SORTOUT  DD  DISP=(NEW,PASS),DSN=&&TEMP,
//             SPACE=(CYL,(5,20),RLSE),DCB=*.SORTIN,UNIT=3390
//SYSIN    DD   *
   SORT FIELDS=COPY
   INCLUDE COND=(6,1,BI,EQ,X'11',&,
               45,44,CH,EQ,
               C'deleted.dsn                                 ')
   OPTION VLSHRT
/*


This is what you get when trying to utilize the DFSORT if //SORTIN is the VSAM file SYS1.MANx: